//引入axois进行二次封装
import axios from "axios"

//在当前模块引入仓库
import store from '@/store'

//引入进度条nprogress配置
import nprogress from 'nprogress'
//引入进度条样式
import 'nprogress/nprogress.css'
//start:进度条开始  done:进度条结束

//create是axios的一个方法，可用于创建一个实例对象
//requests就是配置过后的axios
const requests = axios.create({
    //基础路径
    baseURL: '/api',
    //请求超时时间
    timeOut: 5000,
})

//请求拦截器：在发请求之前做一些事情
requests.interceptors.request.use((config) => {
    //config：配置对象，里面有一个重要属性--headers请求头

    //进度条开始
    nprogress.start()

    //请求头添加一个字段---游客临时id(userTempId):和后台老师商量好
    if(store.state.detail.uuid_token){
        config.headers.userTempId=store.state.detail.uuid_token
    }
    //在请求头添加用户登录token
    if(store.state.user.token){
        config.headers.token=store.state.user.token
    }
    return config
})
//响应拦截器：服务器响应后做一些事情
requests.interceptors.response.use((response) => {
    //进度条结束
    nprogress.done()
    return response.data
}, (error) => {
    return Promise.reject(error)
})

//对外暴露
export default requests